package com.tarena.lbs.coupon.dao.repository;

import com.tarena.lbs.coupon.pojo.dto.CouponDto;
import com.tarena.lbs.base.protocol.pager.PageResult;
import com.tarena.lbs.coupon.pojo.po.CouponPO;
import com.tarena.lbs.coupon.pojo.query.UserCouponCodeQuery;
import com.tarena.lbs.coupon.pojo.vo.CouponVO;
import com.tarena.lbs.coupon.pojo.vo.UserCouponsVO;

public interface CouponRepository {

    UserCouponsVO receiveDetail(UserCouponCodeQuery query);

    PageResult<CouponVO> pageList(Integer userId);

    int generateCoupon(CouponPO couponDto);

    CouponVO detail(Integer id);

    /**
     * 根据id查询优惠券
     *
     * @param id
     * @return 优惠券实体
     */
    CouponPO findById(Integer id);

    int updateCoupon(CouponPO couponPO);

    /**
     * 根据商家id查询优惠券
     *
     * @param couponPO 优惠券PO实体, 包含查询条件
     * @param pageNo   页码
     * @param pageSize 每页数量
     * @return 优惠券PO实体列表
     */
    PageResult<CouponPO> pageList(CouponPO couponPO, int pageNo, int pageSize);
}
